<?php
class Causas_model extends Model{
    function Causas_model()
    {
        parent::Model();
    }
    /*
     * Esta funcion obtiene las causas que coincidan con $chainlike, que es la cadena
     * ingresada por el usuario, además se le pasan 2 parametros que son utilizados para
     * la paginación al momento de ser mostradas.
    */
	function get_procedencia($limit,$chainLike){
		$this->db->select('procedencia');
		$this->db->distinct();
    	$this->db->like('procedencia',$chainLike,'after');
    	return $this->db->get('causa',$limit);
    }
	function get_materia($limit,$chainLike){
		$this->db->select('materia');
    	$this->db->like('materia',$chainLike);
    	return $this->db->get('causa',$limit);
    }
	function get_ano($limit,$ano){
		$this->db->select('fecha_iniciacion');
		$this->db->distinct();
    	$this->db->where('fecha_iniciacion',$ano);
    	return $this->db->get('causa',$limit);
    }
	function get_ano_data($limit,$ano){
		$this->db->select('*');
    	$this->db->like('fecha_iniciacion',$ano);
    	return $this->db->get('causa',$limit);
    }
    
    function get_procedencia_data($limit,$chainLike){
		$this->db->select('*');
    	$this->db->like('procedencia',$chainLike);
		$this->db->or_like('materia',$chainLike);
    	return $this->db->get('causa',$limit);
    }
    
	function getCausasLike_all($limit,$chainLike,$offset){
		$this->db->like('rol',$chainLike);
    	$this->db->or_like('materia',$chainLike);
    	return $this->db->get('causa',$limit,$offset);
    }
    function getCausasLike($limit,$chainLike,$offset){
		$this->db->like('rol',$chainLike);
		$this->db->where('historica','0');
    	$this->db->or_like('materia',$chainLike);
    	return $this->db->get('causa',$limit,$offset);
    }
    
	function getCausasLike_histo($limit,$chainLike,$offset){
		$this->db->like('rol',$chainLike);
		$this->db->where('historica','si');
    	$this->db->or_like('materia',$chainLike);
    	return $this->db->get('causa',$limit,$offset);
    }
	function getAllHisto($limit){
		$this->db->select('rol, materia');
		$this->db->where('historica','si');

    	return $this->db->get('causa',$limit);
    }
	
	function getRolLike($limit,$chainLike){
    	$this->db->select('rol');
    	$this->db->where('historica','0');
		$this->db->like('rol',$chainLike,'after');
    	return $this->db->get('causa',$limit);
    }

	function getMateriaLike($limit,$chainLike){
    	$this->db->select('materia');
    	$this->db->where('historica','0');
    	$this->db->or_like('materia',$chainLike);
    	return $this->db->get('causa',$limit);
    }
	function getRolLike_all($limit,$chainLike){
    	$this->db->select('rol');
		$this->db->like('rol',$chainLike,'after');
    	return $this->db->get('causa',$limit);
    }

	function getMateriaLike_all($limit,$chainLike){
    	$this->db->select('materia');
    	$this->db->or_like('materia',$chainLike);
    	return $this->db->get('causa',$limit);
    }
    
	
    function totalResults($chainLike){
    	$this->db->like('rol',$chainLike);
    	$this->db->or_like('materia',$chainLike);
    	$this->db->from('causa');
    	$total = $this->db->count_all_results();
    	return $total;
    }
    /*
     * Esta funcion obtiene los datos de la causa según rol ingresado.
     */
    function getCausaRol($idCausa){
    	$this->db->where('rol',$idCausa);
    	$this->db->or_where('materia',$idCausa);
    	return $this->db->get('causa');
    }
    /*
     * countAllCausas cuenta la cantidad de tuplas existentes en la tabla
     * causa.
     */
	function countAllCausas(){
		return $this->db->count_all('causa');
	}
	/*
	 * putCausa() inserta una causa en la tabla causa
	 */
	function putCausa($causa)
	{
		$this->db->set($causa);
		return $this->db->insert('causa');
	}

	/*
	 * delCausa() se encargara de eliminar una causa, recibiendo 
	 * solo como parametro el rol.
	 */ 
	 function delCausa($rol)
	 {
	 	$this->db->where('rol', $rol);
		return $this->db->delete('causa'); 
	 }
	
	 function updateCausa($causa,$rol)
	 {
	 	$this->db->where('rol',$rol);
	 	return $this->db->update('causa',$causa);
	 }
	 function storeFoja($data)
	 {
	 	return $this->db->insert('foja',$data);
	 }
	 function get_id_causa_foja($id_foja)
	 {
	 	$this->db->select('causa_rol');
	 	$this->db->where('idfoja',$id_foja);
	 	$resultado =  $this->db->get('foja')->row();
	 	$id_causa = $resultado->causa_rol;
	 	return $id_causa;
	 }
	 function delete_foja($id_foja)
	 {
	 	$this->db->where('idfoja',$id_foja);
	 	return $this->db->delete('foja');
	 }
	 
 	function getHistory($idCausa){
 		$this->db->order_by('idfoja','desc');
    	$this->db->where('causa_rol',$idCausa);
    	//$this->db->limit(10);
    	return $this->db->get('foja');
    }
    function getLast_fecha()
    {
    	$this->db->select('fecha_iniciacion');
    	$this->db->where('historica','0');
    	$this->db->order_by('fecha_iniciacion','desc');
    	return $this->db->get('causa')->row();
    }
 	function getCausa_fecha($fecha){
    	$this->db->where('fecha_iniciacion',$fecha);
    	return $this->db->get('causa');
    }
    function get_tipo_causa($id_causa)
    {
    	$this->db->select('tipo');
    	$this->db->where('rol',$id_causa);
    	$resultado = $this->db->get('causa')->row();
    	$tipo_causa = $resultado->tipo;
    	return $tipo_causa;
    }
    function isHistorial($id_causa){
    	$this->db->select('historica');
    	$this->db->where('rol',$id_causa);
    	return $this->db->get('causa')->row();
    }
    function getFilesCausa($id_causa, $order = 'asc', $where = '0'){
    	$this->db->select('*');
    	$this->db->order_by('fecha',$order);
    	$this->db->where('causa_rol',$id_causa);
    	if($where == '1')
    		$this->db->where('tipo',$where);
    	return $this->db->get('foja'); 	
    }
    function getLastFoja($id_causa){
    	$this->db->select('orden_foja');
    	$this->db->order_by('orden_foja','desc');
    	$this->db->where('causa_rol',$id_causa);
    	$this->db->limit(1);
    	return $this->db->get('foja')->row(); 	
    }
	function getLast_fecha_historica()
    {
    	$this->db->select('fecha_iniciacion');
    	$this->db->where('historica','si');
    	$this->db->order_by('fecha_iniciacion','desc');
    	return $this->db->get('causa')->row();
    }
    function get_last_historica($fecha)
    {
    	$this->db->where('fecha_iniciacion',$fecha);
    	return $this->db->get('causa');
    }
	function getRolLike_histo($limit,$chainLike){
    	$this->db->select('rol');
    	$this->db->where('historica','si');
		$this->db->like('rol',$chainLike,'after');
    	return $this->db->get('causa',$limit);
    }

	function getMateriaLike_histo($limit,$chainLike){
    	$this->db->select('materia');
    	$this->db->where('historica','si');
    	$this->db->or_like('materia',$chainLike,'after');
    	return $this->db->get('causa',$limit);
    }
  	function get_range_rol_total($fecha_inicio,$fecha_final)
    {
    	$this->db->select('*');
   		 $this->db->where('rol >=',$fecha_inicio);
    	$this->db->where('rol <=',$fecha_final);
    	$this->db->from('causa');
    	$total = $this->db->count_all_results();
    	return $total;
    }
    function get_range_rol($fecha_inicio,$fecha_final)
    {
    	$this->db->select('*');
    	$this->db->where('rol >=',$fecha_inicio);
    	$this->db->where('rol <=',$fecha_final);
    	return $this->db->get('causa');
    }
	function get_delete_edit_like($limit,$chainLike){
		$this->db->select('rol');
		$this->db->like('rol',$chainLike);
    	return $this->db->get('causa',$limit);
    }
}//fin Causas_model
?>